#include "AdminDbValue.h"
#include "AdminTools.h"

AgoraAdmin::DbValue::DbValue(int value)
: _type(IDbValue::DBVALUE_INTEGER), _valueInt(value)
{
}

AgoraAdmin::DbValue::DbValue(double value)
: _type(IDbValue::DBVALUE_DOUBLE), _valueDouble(value)
{
}

AgoraAdmin::DbValue::DbValue(const std::string& value)
: _type(IDbValue::DBVALUE_TEXT)
{
	this->_valueString = AgoraAdmin::Tools::UrlDecodeString(value);
}

AgoraAdmin::IDbValue::DbValueType			AgoraAdmin::DbValue::GetType(void) const
{
	return this->_type;
}

const bool			AgoraAdmin::DbValue::GetValueBool(void) const
{
	//return reinterpret_cast<bool>(this->_valueInt);
	if (this->_valueInt)
		return true;
	return false;
}

const int			AgoraAdmin::DbValue::GetValueInt(void) const
{
	return this->_valueInt;
}

const double		AgoraAdmin::DbValue::GetValueDouble(void) const
{
	return this->_valueDouble;
}

const std::string&	AgoraAdmin::DbValue::GetValueString(void) const
{
	return this->_valueString;
}